/*
 * @Author: 涵崽
 * @Date: 2023-11-08 12:01:30
 * @email: 1045654@qq.com
 * @gitee: https://gitee.com/han-zai
 * @LastEditors: 涵崽
 * @LastEditTime: 2023-11-10 10:01:15
 * @Description: 检测用户活跃情况,超时自动退出登录
 * 
 * mian.js中引入
 * import { isActive } from "@/utils/autoLogin.js";

 * 局部使用(挂载到vue实例，在指定组件内调用this.isActive(1))
 * Vue.prototype.$isActive = isActive;
 * 全局使用
 * mian.js中引入后直接调用isActive(1);

 */

// 检测用户活跃情况
import Cookies from "js-cookie";
export function isActive(time = 10) {
  let arr = ["404", "login"]; // 白名单，不需要被检测是否在线的页面
  let result = arr.some(function (item) {
    return window.location.href.indexOf(item) > 0;
  });
  // result 表示当前页面是白名单的页面
  // 不是白名单页面才会去检测用户的活跃状态（鼠标移动状态）
  console.log(result);
  if (!result && time) {
    let lastTime = new Date().getTime();
    let currentTime = new Date().getTime();
    //设置超时时间， 已分钟为单位
    let timeOut = time * 60 * 1000;

    window.onload = function () {
      /* 检测鼠标移动事件 */
      document.addEventListener("mousemove", function () {
        // 更新最后的操作时间
        lastTime = new Date().getTime();
      });
    };

    /* 定时器  间隔1分钟，检测是否长时间未操作页面  */
    let quitTime = window.setInterval(testTime, 1000);

    // 超时函数
    function testTime() {
      //更新当前时间
      currentTime = new Date().getTime();
      //判断是否超时
      if (currentTime - lastTime > timeOut) {
        // 超时操作

        logout();
        isActive();
        // 清除掉定时器
        window.clearInterval(quitTime);
      }
    }
  }
}
function logout() {
  //   this.$store.dispatch("user/logout");
  //   this.$router.push(`/login`);
  Cookies.remove("Admin-Token");
  window.location.href = "/login";
  isActive();
}
